#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
typedef struct linklist
{
	int data;
	struct linklist* next;

}linklist;

int findmax(linklist* L) {
	if (L == NULL)return 0;
	int n = 1;
	int maxi = 1;
	linklist* p = L->next;
	int max = p->data;
	p = p->next;
	n++;
	while (p != NULL) {
		if (p->data > max) {
			maxi = n;
			max = p->data;
		}
		n++;
		p = p->next;
	}
	return maxi;

}
void yd(linklist*& L) {
	
	linklist* p = L->next;
	if (p->next == NULL) return;
	linklist* pnext = p;
	while (pnext != NULL) {
		if (pnext->data < 0) {
			if (L->next == pnext) {
				pnext = pnext->next;
			}
			else {
				p->next = pnext->next;
				pnext->next = L->next;
				L->next = pnext;
				pnext = p->next;
			}
		}
		else {
			if (L->next == pnext) {
				pnext = pnext->next;
			}
			else {
				p = pnext;
				pnext = pnext->next;
			}

		}
	}
	p->next = NULL;

}
void fk(linklist*& A, linklist*& B)
{
	if (A == NULL)return;
	B = (linklist*)malloc(sizeof(linklist));
	linklist* b1 = B; 
	linklist* a1 = A;
	linklist* a2 = a1->next;
	while (a2 != NULL) {
		if (a2->data % 2 == 1) {
			a1->next = a2->next;
			b1->next = a2;
			b1 = b1->next;
			a2 = a1->next;
			}
		else
		{
			a2 = a2->next;
			a1 = a1->next;
		}

	}
	b1->next = NULL;


}

void display(linklist* L) {
	if (L == NULL)return;
	linklist* p = L->next;
	while (p != NULL) {
		printf("%d  ", p->data);
		p = p->next;
   }

	printf("\n");

}


int main()
{
	linklist* L = (linklist*)malloc(sizeof(linklist));
	linklist* a = (linklist*)malloc(sizeof(linklist));
	linklist* b = (linklist*)malloc(sizeof(linklist));
	linklist* c = (linklist*)malloc(sizeof(linklist));
	linklist* d = (linklist*)malloc(sizeof(linklist));
	linklist* e = (linklist*)malloc(sizeof(linklist));


	a->data = 2;
	b->data = 2;
	c->data = 1;
	d->data = 2;
	e->data = 2;

	a->next = b;
	b->next = c;
	c->next = d;
	d->next = e;
	e->next = NULL;
	L->next = a;
	linklist* B = NULL;
	fk(L , B);
	display(L);
	display(B);


	return 0; 
}